package views; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionListener; import java.lang.reflect.Field; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; import models.Person; public class AdminFrame extends JFrame { private JScrollPane scrollPane; private JScrollPane scrollPane1; private JPanel topPanel, topPanel1; private JPanel btnPanel, btnPanel2; private JTabbedPane jtp = new JTabbedPane(); private static JTable table; private static JTable reflectionTable; private JButton addacc, delacc, addHolder, deleteHolder, generateReports; String header[] = { "ID", "Name", "AccountID", "Sum", "Type", "Open Date", "Close Date" }; private static final long serialVersionUID = 1L; public AdminFrame() { setTitle("User Management Tool"); getContentPane().add(jtp); JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel(); jtp.addTab("Accounts", jp1); jtp.addTab("Persons", jp2); setSize(550, 550); setBackground(Color.gray); topPanel = new JPanel(); topPanel1 = new JPanel(); btnPanel = new JPanel(); btnPanel2 = new JPanel(); topPanel.setLayout(new BorderLayout()); jp1.add(topPanel, BorderLayout.CENTER); jp1.add(btnPanel, BorderLayout.SOUTH); jp2.add(topPanel1, BorderLayout.CENTER); jp2.add(btnPanel2, BorderLayout.SOUTH); table = new JTable(0, 7); for (int i = 0; i < table.getColumnCount(); i++) { TableColumn column1 = table.getTableHeader().getColumnModel().getColumn(i); column1.setHeaderValue(header[i]); } reflectionTable = new JTable(); initializeTable((DefaultTableModel) reflectionTable.getModel()); scrollPane = new JScrollPane(table); scrollPane1 = new JScrollPane(reflectionTable); topPanel.add(scrollPane, BorderLayout.CENTER); topPanel1.add(scrollPane1, BorderLayout.CENTER); addacc = new JButton("Add Account"); delacc = new JButton("Delete Account"); deleteHolder = new JButton("Delete Person"); addHolder = new JButton("Add Person"); generateReports = new JButton("Reports"); btnPanel.add(addacc); btnPanel.add(delacc); btnPanel.add(generateReports); btnPanel2.add(addHolder); btnPanel2.add(deleteHolder); setVisible(true); } private void initializeTable(DefaultTableModel tableModel) { Class<?> c = Person.class; Field[] fields = c.getDeclaredFields(); for (Field f : fields) { if (f.getName().equals("serialVersionUID")) { continue; } else { tableModel.addColumn(f.getName()); } } reflectionTable = new JTable(tableModel); } public static JTable getTable() { return table; } public void setTable(JTable table) { AdminFrame.table = table; } public final void setAddActionListener(final ActionListener a) { addacc.addActionListener(a); } public final void setDelButtonActionListener(final ActionListener a) { delacc.addActionListener(a); } public final void setAddHolderButtonActionListener(final ActionListener a) { addHolder.addActionListener(a); } public final void setDeleteHolderButtonActionListener(final ActionListener a) { deleteHolder.addActionListener(a); } public final void setReportsActionListener(final ActionListener a) { generateReports.addActionListener(a); } public static JTable getRefTable() { return reflectionTable; } public void setRefTable(JTable reflectionTable) { AdminFrame.reflectionTable = reflectionTable; } }